(31337_18477347795935, `The keyboard component records key presses from your keyboard.

Every key press will result in two events, a key down and a key up event. Events can then be read one at a time from the component.

[large]Keyboard modes[/large]
Different countries use different keyboards, for example, while the first character row of an english keyboard starts with QWERTY, it starts with AZERTY on french keyboards. 

If you are making a text editor, you don't care about the physical location of the keys, you just want to know what is printed on top of them. In this case you should use [b]Localized mode[/b].

If on the other hand you want to use the upper left keys for game controls, you don't want to deal with WASD on english keyboards being ZQSD on french keyboards. You just want to refence the physical location of the keys on the keyboard, not what is printed on top of them. In this case you should use [b]Physical location mode[/b].

[large]Localized mode[/large]
In this mode, keys are mapped to the ASCII value where possible. The [highlight]w[/highlight] on a QWERTY, AZERTY or any other keyboard will always be [highlight]0x77[/highlight].

[large]Physical location mode[/large]
In this mode, keys are mapped to their the physical row and colum location. Both row and columns use 4 bits, so locations can be written neatly in hex. For example spacebar which is on the 5th row and 3rd column is 0x53 in hex.

[image="coordinate_mode.png"]

Note that the side of the keyboard to the right of the black line have larger row numbers to fit all keys within the 4 bit row and column constraint.

If your keyboard does not look like the diagram, you can experiment to see which value each key outputs.`)